package com.vanguard.p2p.business.example;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

public class AccountExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public AccountExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andAccountIdIsNull() {
            addCriterion("account_id is null");
            return (Criteria) this;
        }

        public Criteria andAccountIdIsNotNull() {
            addCriterion("account_id is not null");
            return (Criteria) this;
        }

        public Criteria andAccountIdEqualTo(Long value) {
            addCriterion("account_id =", value, "accountId");
            return (Criteria) this;
        }

        public Criteria andAccountIdNotEqualTo(Long value) {
            addCriterion("account_id <>", value, "accountId");
            return (Criteria) this;
        }

        public Criteria andAccountIdGreaterThan(Long value) {
            addCriterion("account_id >", value, "accountId");
            return (Criteria) this;
        }

        public Criteria andAccountIdGreaterThanOrEqualTo(Long value) {
            addCriterion("account_id >=", value, "accountId");
            return (Criteria) this;
        }

        public Criteria andAccountIdLessThan(Long value) {
            addCriterion("account_id <", value, "accountId");
            return (Criteria) this;
        }

        public Criteria andAccountIdLessThanOrEqualTo(Long value) {
            addCriterion("account_id <=", value, "accountId");
            return (Criteria) this;
        }

        public Criteria andAccountIdIn(List<Long> values) {
            addCriterion("account_id in", values, "accountId");
            return (Criteria) this;
        }

        public Criteria andAccountIdNotIn(List<Long> values) {
            addCriterion("account_id not in", values, "accountId");
            return (Criteria) this;
        }

        public Criteria andAccountIdBetween(Long value1, Long value2) {
            addCriterion("account_id between", value1, value2, "accountId");
            return (Criteria) this;
        }

        public Criteria andAccountIdNotBetween(Long value1, Long value2) {
            addCriterion("account_id not between", value1, value2, "accountId");
            return (Criteria) this;
        }

        public Criteria andMemIdIsNull() {
            addCriterion("mem_id is null");
            return (Criteria) this;
        }

        public Criteria andMemIdIsNotNull() {
            addCriterion("mem_id is not null");
            return (Criteria) this;
        }

        public Criteria andMemIdEqualTo(Long value) {
            addCriterion("mem_id =", value, "memId");
            return (Criteria) this;
        }

        public Criteria andMemIdNotEqualTo(Long value) {
            addCriterion("mem_id <>", value, "memId");
            return (Criteria) this;
        }

        public Criteria andMemIdGreaterThan(Long value) {
            addCriterion("mem_id >", value, "memId");
            return (Criteria) this;
        }

        public Criteria andMemIdGreaterThanOrEqualTo(Long value) {
            addCriterion("mem_id >=", value, "memId");
            return (Criteria) this;
        }

        public Criteria andMemIdLessThan(Long value) {
            addCriterion("mem_id <", value, "memId");
            return (Criteria) this;
        }

        public Criteria andMemIdLessThanOrEqualTo(Long value) {
            addCriterion("mem_id <=", value, "memId");
            return (Criteria) this;
        }

        public Criteria andMemIdIn(List<Long> values) {
            addCriterion("mem_id in", values, "memId");
            return (Criteria) this;
        }

        public Criteria andMemIdNotIn(List<Long> values) {
            addCriterion("mem_id not in", values, "memId");
            return (Criteria) this;
        }

        public Criteria andMemIdBetween(Long value1, Long value2) {
            addCriterion("mem_id between", value1, value2, "memId");
            return (Criteria) this;
        }

        public Criteria andMemIdNotBetween(Long value1, Long value2) {
            addCriterion("mem_id not between", value1, value2, "memId");
            return (Criteria) this;
        }

        public Criteria andTradePasswordIsNull() {
            addCriterion("trade_password is null");
            return (Criteria) this;
        }

        public Criteria andTradePasswordIsNotNull() {
            addCriterion("trade_password is not null");
            return (Criteria) this;
        }

        public Criteria andTradePasswordEqualTo(String value) {
            addCriterion("trade_password =", value, "tradePassword");
            return (Criteria) this;
        }

        public Criteria andTradePasswordNotEqualTo(String value) {
            addCriterion("trade_password <>", value, "tradePassword");
            return (Criteria) this;
        }

        public Criteria andTradePasswordGreaterThan(String value) {
            addCriterion("trade_password >", value, "tradePassword");
            return (Criteria) this;
        }

        public Criteria andTradePasswordGreaterThanOrEqualTo(String value) {
            addCriterion("trade_password >=", value, "tradePassword");
            return (Criteria) this;
        }

        public Criteria andTradePasswordLessThan(String value) {
            addCriterion("trade_password <", value, "tradePassword");
            return (Criteria) this;
        }

        public Criteria andTradePasswordLessThanOrEqualTo(String value) {
            addCriterion("trade_password <=", value, "tradePassword");
            return (Criteria) this;
        }

        public Criteria andTradePasswordLike(String value) {
            addCriterion("trade_password like", value, "tradePassword");
            return (Criteria) this;
        }

        public Criteria andTradePasswordNotLike(String value) {
            addCriterion("trade_password not like", value, "tradePassword");
            return (Criteria) this;
        }

        public Criteria andTradePasswordIn(List<String> values) {
            addCriterion("trade_password in", values, "tradePassword");
            return (Criteria) this;
        }

        public Criteria andTradePasswordNotIn(List<String> values) {
            addCriterion("trade_password not in", values, "tradePassword");
            return (Criteria) this;
        }

        public Criteria andTradePasswordBetween(String value1, String value2) {
            addCriterion("trade_password between", value1, value2, "tradePassword");
            return (Criteria) this;
        }

        public Criteria andTradePasswordNotBetween(String value1, String value2) {
            addCriterion("trade_password not between", value1, value2, "tradePassword");
            return (Criteria) this;
        }

        public Criteria andUsableAmountIsNull() {
            addCriterion("usable_amount is null");
            return (Criteria) this;
        }

        public Criteria andUsableAmountIsNotNull() {
            addCriterion("usable_amount is not null");
            return (Criteria) this;
        }

        public Criteria andUsableAmountEqualTo(BigDecimal value) {
            addCriterion("usable_amount =", value, "usableAmount");
            return (Criteria) this;
        }

        public Criteria andUsableAmountNotEqualTo(BigDecimal value) {
            addCriterion("usable_amount <>", value, "usableAmount");
            return (Criteria) this;
        }

        public Criteria andUsableAmountGreaterThan(BigDecimal value) {
            addCriterion("usable_amount >", value, "usableAmount");
            return (Criteria) this;
        }

        public Criteria andUsableAmountGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("usable_amount >=", value, "usableAmount");
            return (Criteria) this;
        }

        public Criteria andUsableAmountLessThan(BigDecimal value) {
            addCriterion("usable_amount <", value, "usableAmount");
            return (Criteria) this;
        }

        public Criteria andUsableAmountLessThanOrEqualTo(BigDecimal value) {
            addCriterion("usable_amount <=", value, "usableAmount");
            return (Criteria) this;
        }

        public Criteria andUsableAmountIn(List<BigDecimal> values) {
            addCriterion("usable_amount in", values, "usableAmount");
            return (Criteria) this;
        }

        public Criteria andUsableAmountNotIn(List<BigDecimal> values) {
            addCriterion("usable_amount not in", values, "usableAmount");
            return (Criteria) this;
        }

        public Criteria andUsableAmountBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("usable_amount between", value1, value2, "usableAmount");
            return (Criteria) this;
        }

        public Criteria andUsableAmountNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("usable_amount not between", value1, value2, "usableAmount");
            return (Criteria) this;
        }

        public Criteria andFreezedAmountIsNull() {
            addCriterion("freezed_amount is null");
            return (Criteria) this;
        }

        public Criteria andFreezedAmountIsNotNull() {
            addCriterion("freezed_amount is not null");
            return (Criteria) this;
        }

        public Criteria andFreezedAmountEqualTo(BigDecimal value) {
            addCriterion("freezed_amount =", value, "freezedAmount");
            return (Criteria) this;
        }

        public Criteria andFreezedAmountNotEqualTo(BigDecimal value) {
            addCriterion("freezed_amount <>", value, "freezedAmount");
            return (Criteria) this;
        }

        public Criteria andFreezedAmountGreaterThan(BigDecimal value) {
            addCriterion("freezed_amount >", value, "freezedAmount");
            return (Criteria) this;
        }

        public Criteria andFreezedAmountGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("freezed_amount >=", value, "freezedAmount");
            return (Criteria) this;
        }

        public Criteria andFreezedAmountLessThan(BigDecimal value) {
            addCriterion("freezed_amount <", value, "freezedAmount");
            return (Criteria) this;
        }

        public Criteria andFreezedAmountLessThanOrEqualTo(BigDecimal value) {
            addCriterion("freezed_amount <=", value, "freezedAmount");
            return (Criteria) this;
        }

        public Criteria andFreezedAmountIn(List<BigDecimal> values) {
            addCriterion("freezed_amount in", values, "freezedAmount");
            return (Criteria) this;
        }

        public Criteria andFreezedAmountNotIn(List<BigDecimal> values) {
            addCriterion("freezed_amount not in", values, "freezedAmount");
            return (Criteria) this;
        }

        public Criteria andFreezedAmountBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("freezed_amount between", value1, value2, "freezedAmount");
            return (Criteria) this;
        }

        public Criteria andFreezedAmountNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("freezed_amount not between", value1, value2, "freezedAmount");
            return (Criteria) this;
        }

        public Criteria andVersionIsNull() {
            addCriterion("version is null");
            return (Criteria) this;
        }

        public Criteria andVersionIsNotNull() {
            addCriterion("version is not null");
            return (Criteria) this;
        }

        public Criteria andVersionEqualTo(Integer value) {
            addCriterion("version =", value, "version");
            return (Criteria) this;
        }

        public Criteria andVersionNotEqualTo(Integer value) {
            addCriterion("version <>", value, "version");
            return (Criteria) this;
        }

        public Criteria andVersionGreaterThan(Integer value) {
            addCriterion("version >", value, "version");
            return (Criteria) this;
        }

        public Criteria andVersionGreaterThanOrEqualTo(Integer value) {
            addCriterion("version >=", value, "version");
            return (Criteria) this;
        }

        public Criteria andVersionLessThan(Integer value) {
            addCriterion("version <", value, "version");
            return (Criteria) this;
        }

        public Criteria andVersionLessThanOrEqualTo(Integer value) {
            addCriterion("version <=", value, "version");
            return (Criteria) this;
        }

        public Criteria andVersionIn(List<Integer> values) {
            addCriterion("version in", values, "version");
            return (Criteria) this;
        }

        public Criteria andVersionNotIn(List<Integer> values) {
            addCriterion("version not in", values, "version");
            return (Criteria) this;
        }

        public Criteria andVersionBetween(Integer value1, Integer value2) {
            addCriterion("version between", value1, value2, "version");
            return (Criteria) this;
        }

        public Criteria andVersionNotBetween(Integer value1, Integer value2) {
            addCriterion("version not between", value1, value2, "version");
            return (Criteria) this;
        }

        public Criteria andUnreceiveInterestIsNull() {
            addCriterion("unreceive_interest is null");
            return (Criteria) this;
        }

        public Criteria andUnreceiveInterestIsNotNull() {
            addCriterion("unreceive_interest is not null");
            return (Criteria) this;
        }

        public Criteria andUnreceiveInterestEqualTo(BigDecimal value) {
            addCriterion("unreceive_interest =", value, "unreceiveInterest");
            return (Criteria) this;
        }

        public Criteria andUnreceiveInterestNotEqualTo(BigDecimal value) {
            addCriterion("unreceive_interest <>", value, "unreceiveInterest");
            return (Criteria) this;
        }

        public Criteria andUnreceiveInterestGreaterThan(BigDecimal value) {
            addCriterion("unreceive_interest >", value, "unreceiveInterest");
            return (Criteria) this;
        }

        public Criteria andUnreceiveInterestGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("unreceive_interest >=", value, "unreceiveInterest");
            return (Criteria) this;
        }

        public Criteria andUnreceiveInterestLessThan(BigDecimal value) {
            addCriterion("unreceive_interest <", value, "unreceiveInterest");
            return (Criteria) this;
        }

        public Criteria andUnreceiveInterestLessThanOrEqualTo(BigDecimal value) {
            addCriterion("unreceive_interest <=", value, "unreceiveInterest");
            return (Criteria) this;
        }

        public Criteria andUnreceiveInterestIn(List<BigDecimal> values) {
            addCriterion("unreceive_interest in", values, "unreceiveInterest");
            return (Criteria) this;
        }

        public Criteria andUnreceiveInterestNotIn(List<BigDecimal> values) {
            addCriterion("unreceive_interest not in", values, "unreceiveInterest");
            return (Criteria) this;
        }

        public Criteria andUnreceiveInterestBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("unreceive_interest between", value1, value2, "unreceiveInterest");
            return (Criteria) this;
        }

        public Criteria andUnreceiveInterestNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("unreceive_interest not between", value1, value2, "unreceiveInterest");
            return (Criteria) this;
        }

        public Criteria andUnreceivePrincipalIsNull() {
            addCriterion("unreceive_principal is null");
            return (Criteria) this;
        }

        public Criteria andUnreceivePrincipalIsNotNull() {
            addCriterion("unreceive_principal is not null");
            return (Criteria) this;
        }

        public Criteria andUnreceivePrincipalEqualTo(BigDecimal value) {
            addCriterion("unreceive_principal =", value, "unreceivePrincipal");
            return (Criteria) this;
        }

        public Criteria andUnreceivePrincipalNotEqualTo(BigDecimal value) {
            addCriterion("unreceive_principal <>", value, "unreceivePrincipal");
            return (Criteria) this;
        }

        public Criteria andUnreceivePrincipalGreaterThan(BigDecimal value) {
            addCriterion("unreceive_principal >", value, "unreceivePrincipal");
            return (Criteria) this;
        }

        public Criteria andUnreceivePrincipalGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("unreceive_principal >=", value, "unreceivePrincipal");
            return (Criteria) this;
        }

        public Criteria andUnreceivePrincipalLessThan(BigDecimal value) {
            addCriterion("unreceive_principal <", value, "unreceivePrincipal");
            return (Criteria) this;
        }

        public Criteria andUnreceivePrincipalLessThanOrEqualTo(BigDecimal value) {
            addCriterion("unreceive_principal <=", value, "unreceivePrincipal");
            return (Criteria) this;
        }

        public Criteria andUnreceivePrincipalIn(List<BigDecimal> values) {
            addCriterion("unreceive_principal in", values, "unreceivePrincipal");
            return (Criteria) this;
        }

        public Criteria andUnreceivePrincipalNotIn(List<BigDecimal> values) {
            addCriterion("unreceive_principal not in", values, "unreceivePrincipal");
            return (Criteria) this;
        }

        public Criteria andUnreceivePrincipalBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("unreceive_principal between", value1, value2, "unreceivePrincipal");
            return (Criteria) this;
        }

        public Criteria andUnreceivePrincipalNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("unreceive_principal not between", value1, value2, "unreceivePrincipal");
            return (Criteria) this;
        }

        public Criteria andUnreturnAmountIsNull() {
            addCriterion("unreturn_amount is null");
            return (Criteria) this;
        }

        public Criteria andUnreturnAmountIsNotNull() {
            addCriterion("unreturn_amount is not null");
            return (Criteria) this;
        }

        public Criteria andUnreturnAmountEqualTo(BigDecimal value) {
            addCriterion("unreturn_amount =", value, "unreturnAmount");
            return (Criteria) this;
        }

        public Criteria andUnreturnAmountNotEqualTo(BigDecimal value) {
            addCriterion("unreturn_amount <>", value, "unreturnAmount");
            return (Criteria) this;
        }

        public Criteria andUnreturnAmountGreaterThan(BigDecimal value) {
            addCriterion("unreturn_amount >", value, "unreturnAmount");
            return (Criteria) this;
        }

        public Criteria andUnreturnAmountGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("unreturn_amount >=", value, "unreturnAmount");
            return (Criteria) this;
        }

        public Criteria andUnreturnAmountLessThan(BigDecimal value) {
            addCriterion("unreturn_amount <", value, "unreturnAmount");
            return (Criteria) this;
        }

        public Criteria andUnreturnAmountLessThanOrEqualTo(BigDecimal value) {
            addCriterion("unreturn_amount <=", value, "unreturnAmount");
            return (Criteria) this;
        }

        public Criteria andUnreturnAmountIn(List<BigDecimal> values) {
            addCriterion("unreturn_amount in", values, "unreturnAmount");
            return (Criteria) this;
        }

        public Criteria andUnreturnAmountNotIn(List<BigDecimal> values) {
            addCriterion("unreturn_amount not in", values, "unreturnAmount");
            return (Criteria) this;
        }

        public Criteria andUnreturnAmountBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("unreturn_amount between", value1, value2, "unreturnAmount");
            return (Criteria) this;
        }

        public Criteria andUnreturnAmountNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("unreturn_amount not between", value1, value2, "unreturnAmount");
            return (Criteria) this;
        }

        public Criteria andRemainBorrowLimitIsNull() {
            addCriterion("remain_borrow_limit is null");
            return (Criteria) this;
        }

        public Criteria andRemainBorrowLimitIsNotNull() {
            addCriterion("remain_borrow_limit is not null");
            return (Criteria) this;
        }

        public Criteria andRemainBorrowLimitEqualTo(BigDecimal value) {
            addCriterion("remain_borrow_limit =", value, "remainBorrowLimit");
            return (Criteria) this;
        }

        public Criteria andRemainBorrowLimitNotEqualTo(BigDecimal value) {
            addCriterion("remain_borrow_limit <>", value, "remainBorrowLimit");
            return (Criteria) this;
        }

        public Criteria andRemainBorrowLimitGreaterThan(BigDecimal value) {
            addCriterion("remain_borrow_limit >", value, "remainBorrowLimit");
            return (Criteria) this;
        }

        public Criteria andRemainBorrowLimitGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("remain_borrow_limit >=", value, "remainBorrowLimit");
            return (Criteria) this;
        }

        public Criteria andRemainBorrowLimitLessThan(BigDecimal value) {
            addCriterion("remain_borrow_limit <", value, "remainBorrowLimit");
            return (Criteria) this;
        }

        public Criteria andRemainBorrowLimitLessThanOrEqualTo(BigDecimal value) {
            addCriterion("remain_borrow_limit <=", value, "remainBorrowLimit");
            return (Criteria) this;
        }

        public Criteria andRemainBorrowLimitIn(List<BigDecimal> values) {
            addCriterion("remain_borrow_limit in", values, "remainBorrowLimit");
            return (Criteria) this;
        }

        public Criteria andRemainBorrowLimitNotIn(List<BigDecimal> values) {
            addCriterion("remain_borrow_limit not in", values, "remainBorrowLimit");
            return (Criteria) this;
        }

        public Criteria andRemainBorrowLimitBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("remain_borrow_limit between", value1, value2, "remainBorrowLimit");
            return (Criteria) this;
        }

        public Criteria andRemainBorrowLimitNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("remain_borrow_limit not between", value1, value2, "remainBorrowLimit");
            return (Criteria) this;
        }

        public Criteria andBorrowLimitIsNull() {
            addCriterion("borrow_limit is null");
            return (Criteria) this;
        }

        public Criteria andBorrowLimitIsNotNull() {
            addCriterion("borrow_limit is not null");
            return (Criteria) this;
        }

        public Criteria andBorrowLimitEqualTo(BigDecimal value) {
            addCriterion("borrow_limit =", value, "borrowLimit");
            return (Criteria) this;
        }

        public Criteria andBorrowLimitNotEqualTo(BigDecimal value) {
            addCriterion("borrow_limit <>", value, "borrowLimit");
            return (Criteria) this;
        }

        public Criteria andBorrowLimitGreaterThan(BigDecimal value) {
            addCriterion("borrow_limit >", value, "borrowLimit");
            return (Criteria) this;
        }

        public Criteria andBorrowLimitGreaterThanOrEqualTo(BigDecimal value) {
            addCriterion("borrow_limit >=", value, "borrowLimit");
            return (Criteria) this;
        }

        public Criteria andBorrowLimitLessThan(BigDecimal value) {
            addCriterion("borrow_limit <", value, "borrowLimit");
            return (Criteria) this;
        }

        public Criteria andBorrowLimitLessThanOrEqualTo(BigDecimal value) {
            addCriterion("borrow_limit <=", value, "borrowLimit");
            return (Criteria) this;
        }

        public Criteria andBorrowLimitIn(List<BigDecimal> values) {
            addCriterion("borrow_limit in", values, "borrowLimit");
            return (Criteria) this;
        }

        public Criteria andBorrowLimitNotIn(List<BigDecimal> values) {
            addCriterion("borrow_limit not in", values, "borrowLimit");
            return (Criteria) this;
        }

        public Criteria andBorrowLimitBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("borrow_limit between", value1, value2, "borrowLimit");
            return (Criteria) this;
        }

        public Criteria andBorrowLimitNotBetween(BigDecimal value1, BigDecimal value2) {
            addCriterion("borrow_limit not between", value1, value2, "borrowLimit");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}